package com.yanqu.road.entity.log;

import com.yanqu.road.entity.FieldTypeAnnotation;

import java.util.Date;

@FieldTypeAnnotation(tableName = "t_l_ck_washe_game_over", desc = "瓦舍-单局结束日志", autoSave = true, uploadCk = true)
public class LogWasheGameOver extends ServerBaseLog {

    @FieldTypeAnnotation(desc = "玩家1ID", isIndex = true)
    private long userId;
    @FieldTypeAnnotation(desc = "玩家1卡片ID")
    private int cardId;

    @FieldTypeAnnotation(desc = "玩家2ID")
    private long userId2;
    @FieldTypeAnnotation(desc = "玩家2卡片ID")
    private int cardId2;

    @FieldTypeAnnotation(desc = "房间ID，短时间内唯一")
    private long roomId;

    @FieldTypeAnnotation(desc = "盘面机制ID")
    private int sceneId;

    @FieldTypeAnnotation(desc = "系统赛季")
    private int seasonId;
    @FieldTypeAnnotation(desc = "玩家段位")
    private int rankId;

    @FieldTypeAnnotation(desc = "输赢")
    private boolean win;
    @FieldTypeAnnotation(desc = "结束类型：1正常，2投降，3掉线，4弃权，5平局")
    private int gameOverType; // WasheGameOverType

    @FieldTypeAnnotation(desc = "变更荣誉点")
    private long changeHonor;
    @FieldTypeAnnotation(desc = "当前荣誉点")
    private long newHonor;

    @FieldTypeAnnotation(desc = "任务道具ID")
    private int taskItemId;
    @FieldTypeAnnotation(desc = "任务道具数量")
    private int getTaskItemNum;

    @FieldTypeAnnotation(desc = "有没有保护卡")
    private boolean hasSafeCard;

    @FieldTypeAnnotation(desc = "获得宝箱ID")
    private int getBoxId;

    @FieldTypeAnnotation(desc = "游戏时间")
    private long costTime;
    @FieldTypeAnnotation(desc = "获得分数")
    private long gameScore;

    @FieldTypeAnnotation(desc = "对手段位")
    private int rankId2;

    @FieldTypeAnnotation(desc = "结束时回合")
    private int endRound;

    @FieldTypeAnnotation(desc = "当日游戏时长")
    private long todayPlayTime;

    @FieldTypeAnnotation(desc = "匹配耗时，单位毫秒")
    private long matchCostTime;

    @FieldTypeAnnotation(desc = "当日累计在线时长")
    private long todayOnlineTime;

    @FieldTypeAnnotation(desc = "对手类型，1匹配AI、2匹配玩家、3好友、4练习模式、5、积分赛低级场、6积分赛高级场、7巅峰赛")
    private int opponentType; // WasheModule.getLogOpponentType

    @FieldTypeAnnotation(desc = "是否先手，0未记录，1先手，2后手")
    private int firstOperate;

    @FieldTypeAnnotation(desc = "盘面技能")
    private String skillList = "";
    @FieldTypeAnnotation(desc = "积分赛加分")
    private long changeJinBiaoScore;
    @FieldTypeAnnotation(desc = "积分赛当前分")
    private long newJinBiaoScore;

    //地域赛
    @FieldTypeAnnotation(desc = "活动id")
    private int activityId;
    @FieldTypeAnnotation(desc = "地区、省份")
    private int zoneId;
    @FieldTypeAnnotation(desc = "对手地区、省份")
    private int opponentZoneId;
    @FieldTypeAnnotation(desc = "本场连胜")
    private int winTimes;

    public long getUserId() {
        return userId;
    }

    public int getCardId() {
        return cardId;
    }

    public long getUserId2() {
        return userId2;
    }

    public int getCardId2() {
        return cardId2;
    }

    public long getRoomId() {
        return roomId;
    }

    public int getSceneId() {
        return sceneId;
    }

    public int getSeasonId() {
        return seasonId;
    }

    public int getRankId() {
        return rankId;
    }

    public boolean isWin() {
        return win;
    }

    public int getGameOverType() {
        return gameOverType;
    }

    public long getChangeHonor() {
        return changeHonor;
    }

    public long getNewHonor() {
        return newHonor;
    }

    public int getTaskItemId() {
        return taskItemId;
    }

    public int getGetTaskItemNum() {
        return getTaskItemNum;
    }

    public boolean isHasSafeCard() {
        return hasSafeCard;
    }

    public int getGetBoxId() {
        return getBoxId;
    }

    public long getCostTime() {
        return costTime;
    }

    public long getGameScore() {
        return gameScore;
    }

    public int getRankId2() {
        return rankId2;
    }

    public int getEndRound() {
        return endRound;
    }

    public long getTodayPlayTime() {
        return todayPlayTime;
    }

    public long getMatchCostTime() {
        return matchCostTime;
    }

    public long getTodayOnlineTime() {
        return todayOnlineTime;
    }

    public int getOpponentType() {
        return opponentType;
    }

    public int getFirstOperate() {
        return firstOperate;
    }

    public String getSkillList() {
        return skillList;
    }

    public long getChangeJinBiaoScore() {
        return changeJinBiaoScore;
    }

    public long getNewJinBiaoScore() {
        return newJinBiaoScore;
    }

    // ----------------------------------------------------------------

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public void setCardId(int cardId) {
        this.cardId = cardId;
    }

    public void setUserId2(long userId2) {
        this.userId2 = userId2;
    }

    public void setCardId2(int cardId2) {
        this.cardId2 = cardId2;
    }

    public void setRoomId(long roomId) {
        this.roomId = roomId;
    }

    public void setSceneId(int sceneId) {
        this.sceneId = sceneId;
    }

    public void setSeasonId(int seasonId) {
        this.seasonId = seasonId;
    }

    public void setRankId(int rankId) {
        this.rankId = rankId;
    }

    public void setWin(boolean win) {
        this.win = win;
    }

    public void setGameOverType(int gameOverType) {
        this.gameOverType = gameOverType;
    }

    public void setChangeHonor(long changeHonor) {
        this.changeHonor = changeHonor;
    }

    public void setNewHonor(long newHonor) {
        this.newHonor = newHonor;
    }

    public void setTaskItemId(int taskItemId) {
        this.taskItemId = taskItemId;
    }

    public void setGetTaskItemNum(int getTaskItemNum) {
        this.getTaskItemNum = getTaskItemNum;
    }

    public void setHasSafeCard(boolean hasSafeCard) {
        this.hasSafeCard = hasSafeCard;
    }

    public void setGetBoxId(int getBoxId) {
        this.getBoxId = getBoxId;
    }

    public void setCostTime(long costTime) {
        this.costTime = costTime;
    }

    public void setGameScore(long gameScore) {
        this.gameScore = gameScore;
    }

    public void setRankId2(int rankId2) {
        this.rankId2 = rankId2;
    }

    public void setEndRound(int endRound) {
        this.endRound = endRound;
    }

    public void setTodayPlayTime(long todayPlayTime) {
        this.todayPlayTime = todayPlayTime;
    }

    public void setMatchCostTime(long matchCostTime) {
        this.matchCostTime = matchCostTime;
    }

    public void setTodayOnlineTime(long todayOnlineTime) {
        this.todayOnlineTime = todayOnlineTime;
    }

    public void setOpponentType(int opponentType) {
        this.opponentType = opponentType;
    }

    public void setFirstOperate(int firstOperate) {
        this.firstOperate = firstOperate;
    }

    public void setSkillList(String skillList) {
        this.skillList = skillList;
    }

    public void setChangeJinBiaoScore(long changeJinBiaoScore) {
        this.changeJinBiaoScore = changeJinBiaoScore;
    }

    public void setNewJinBiaoScore(long newJinBiaoScore) {
        this.newJinBiaoScore = newJinBiaoScore;
    }

    public int getActivityId() {
        return activityId;
    }

    public void setActivityId(int activityId) {
        this.activityId = activityId;
    }

    public int getZoneId() {
        return zoneId;
    }

    public void setZoneId(int zoneId) {
        this.zoneId = zoneId;
    }

    public int getOpponentZoneId() {
        return opponentZoneId;
    }

    public void setOpponentZoneId(int opponentZoneId) {
        this.opponentZoneId = opponentZoneId;
    }

    public int getWinTimes() {
        return winTimes;
    }

    public void setWinTimes(int winTimes) {
        this.winTimes = winTimes;
    }
}
